/**
 * Menu file
 */

const { Menu, MenuItem, globalShortcut } = require('electron')

module.exports = (win) => {
  const menu = new Menu()

  menu.append(new MenuItem({
    label: 'Electron',
    submenu: [
      {
        role: 'help',
        accelerator: process.platform === 'darwin' ? 'Alt+Cmd+I' : 'Alt+Shift+I',
        click: () => {
          console.info('Electron rocks!')
        }
      }
    ]
  }))

  Menu.setApplicationMenu(menu)

  // register global shortcut
  globalShortcut.register('Alt+CommandOrControl+I', () => {
    console.info('Electron global shortcuts!')
  })

  // 在调度页面中的keydown和keyup事件之前，会发出before-input-event事件。 
  // 它可以用于捕获和处理在菜单中不可见的自定义快捷方式。
  // 在运行Electron应用程序之后，如果你打开你运行Electron应用的终端并按下 Ctrl+I 组合键，你会发现刚才按下的组合键被成功拦截了。
  win.webContents.on('before-input-event', (event, input) => {
    if (input.control && input.key.toLowerCase() === 'i') {
      console.info("Pressed Ctrl+I")
      event.preventDefault()
    }
  })
}